Some types of error correction codes, such as Generalized Low Density Parity Check (GLDPC) codes, are commonly decoded using iterative decoding processes. Various decoding schemes for GLDPC codes are known in the art. For example, U.S. Pat. No. 8,812,939, whose disclosure is incorporated herein by reference, describes systems and methods for decoding data using a decoder that includes a primary decoder and an auxiliary decoder. A code word is retrieved from a storage device. The primary decoder attempts to decode the code word using hard data associated with the code word. If the primary decoder fails, an indication of the failure may be received by a decoder controller, which activates the auxiliary decoder. The auxiliary decoder attempts to decode the code word using either hard data or soft data associated with the code word.
U.S. Patent Application Publication 2014/0258809, whose disclosure is incorporated herein by reference, describes systems and methods for decoding data. A variable node value for a variable node is received at a first time, and reliability data for the variable node is received at a second time. The variable node is decoded using a first decoding scheme after the first time and before the second time, and the variable node is decoded using a second decoding scheme different from the first decoding scheme after the second time.
U.S. Patent Application Publication 2012/0240007, whose disclosure is incorporated herein by reference, describes a solid state storage device that includes a flash memory and a controller, which is configured to store data in the flash memory via a plurality of channels. The stored data is encoded using a Low Density Parity Check (LDPC) code. Hard decision decoders are configured to decode encoded data received from the flash memory via respective channels of the plurality of channels using the LDPC code and to provide the decoded data to the controller in response to one or more read commands from the controller. A soft decision decoder is configured to decode the encoded data received from the flash memory using the LDPC code and to provide the decoded data to the controller in response to one of the plurality of hard decision decoders failing to decode the encoded data. The encoded data is obtained by the soft decision decoder using a plurality of read-retry operations.